David Domínguez
Arturo Silva
Luis González
Alberto Valiente
André Ramírez
Bruno Díaz
Foto FOREIGN AFFAIRS LATINOAMÉRICA
El nearshoring es una estrategia de reubicación de procesos de
producción o servicios a países cercanos al mercado objetivo, con el fin
de reducir costos logísticos, aprovechar tratados comerciales y mejorar
tiempos de entrega. La analítica predictiva juega un papel clave en el
nearshoring, ya que permite anticipar tendencias económicas, evaluar
riesgos geopolíticos y optimizar la selección de ubicaciones mediante
modelos de predicción de costos y demanda.
México se ha hecho una pieza clave para el nearshoring,
principalmente por la guerra comercial entre EE.UU. y China al igual que
su cercanía con EE.UU. Empresas del sector manufacturero, automotriz,
tecnología y logística están trasladando operaciones a México para
reducir costos y tiempos de entrega. Sin embargo, el país enfrenta
desafíos como infraestructura, costos energéticos y seguridad.
Flujo de Inversión Extranjera Directa (IED) en sectores afectados por
el nearshoring. Número de nuevas plantas industriales y expansiones en
zonas estratégicas. Costo logístico y tiempos de entrega en comparación
con otros países. Exportaciones manufactureras hacia EE.UU.
Disponibilidad de mano de obra calificada y sueldos en sectores
clave.
Observaciones repetidas, Mayor capacidad explicativa, Control de
heterogeneidad no observada, Estructura bidimensional, Modelos
específicos.
Dimensión temporal: El análisis de corte transversal mide un solo punto en el tiempo, mientras que el panel examina múltiples periodos.
Control de heterogeneidad: El panel maneja variabilidad individual a lo largo del tiempo, el corte transversal no.
Mayor precisión en inferencias: El panel reduce sesgos en la
estimación de efectos causales.
Múltiples unidades vs. una sola: El panel analiza varias unidades en distintos periodos, mientras que la serie de tiempo estudia una sola unidad a lo largo del tiempo.
Estructura de dependencia: En series de tiempo, la dependencia temporal es crucial, mientras que en datos panel hay interdependencia entre unidades y tiempo.
Métodos de modelado: Las series de tiempo requieren técnicas como ARIMA o cointegración, mientras que el panel usa modelos de efectos fijos y aleatorios.
# Manipulación y Transformación de Datos
library(dplyr) # Manipulación y transformación de datos (filter, mutate, group_by, summarise)
library(tidyr) # Organización y estructuración de datos en formato "tidy" (spread, gather, pivot_longer, pivot_wider)
library(purrr) # Programación funcional y manejo de listas
library(janitor) # Limpieza y formateo de datos (clean_names, remove_empty)
# Importación y Lectura de Archivos
library(readr) # Lectura rápida de archivos de texto (CSV, TSV, etc.)
library(readxl) # Importación de archivos Excel
# Visualización de Datos y Gráficos
library(ggplot2) # Creación de gráficos avanzados y personalizables
library(reshape2) # Transformación de datos en diferentes estructuras para visualización
library(corrplot) # Visualización de matrices de correlación
library(rpart.plot) # Visualización de árboles de decisión
# Modelado y Análisis Estadístico
library(rpart) # Modelos de árboles de decisión para clasificación y regresión
library(plm) # Manejo de datos en formato de panel para modelos econométricos
# Manipulación de Cadenas de Texto
library(stringr) # Manipulación de cadenas de texto (regex, detección de patrones, etc.)
library(stringi) # Procesamiento avanzado de cadenas (Unicode, conteo de caracteres, etc.)
# Manejo de Fechas y Tiempos
library(lubridate) # Manipulación de fechas y tiempos en R
# Generación de Informes y Tablas en R Markdown
library(knitr) # Creación de documentos dinámicos en R Markdown
library(kableExtra) # Mejora del formato y estilo de las tablas generadas con knitr::kable
# Geoespacial y Mapas
library(sf) # Análisis y manipulación de datos espaciales en formato "Simple Features"
library(rnaturalearth) # Obtención de mapas geoespaciales de todo el mundo
library(rnaturalearthdata) # Conjunto de datos espaciales adicionales para mapas
# Animaciones y Visualización Dinámica
library(gganimate) # Creación de animaciones en gráficos de R
library(transformr) # Transiciones suaves en animaciones con gganimate## [1] "state" "year"
## [3] "state_id" "new_fdi"
## [5] "reinv_profits" "intercom_acc"
## [7] "total_fdi" "crime_rate"
## [9] "unemployment" "employment"
## [11] "business_activity" "real_wage"
## [13] "pop_density" "good_governance"
## [15] "ratio_public_investment" "lq_primary"
## [17] "lq_secondary" "lq_tertiary"
## [19] "exchange_rate" "patents_rate"
## [21] "inpc" "border_distance"
## [23] "region_name" "region_num"
## [25] "trump_election" "exports_miles_dlls"
# Convertir valores de USD a MXN
nearshoring <- nearshoring %>%
mutate(across(c(new_fdi, reinv_profits, intercom_acc, total_fdi, exports_miles_dlls),
~ . * exchange_rate, .names = "mxn_{.col}"))
# Ajustar valores a precios reales (2018)
nearshoring <- nearshoring %>%
mutate(across(c(mxn_new_fdi, mxn_reinv_profits, mxn_intercom_acc, mxn_total_fdi, real_wage, mxn_exports_miles_dlls),
~ . / inpc * 100, .names = "real_{.col}"))
# Convertir region_name a factor para evitar problemas con ggplot2
nearshoring <- nearshoring %>%
mutate(region_name = as.factor(region_name))
# Subset solo con variables reales en MXN (sin dólares)
nearshoring_clean <- nearshoring %>%
select(state, year, region_name, region_num,
real_mxn_new_fdi, real_mxn_reinv_profits, real_mxn_intercom_acc,
real_mxn_total_fdi, real_wage, real_mxn_exports_miles_dlls,
crime_rate, unemployment, employment, business_activity,
pop_density, good_governance, ratio_public_investment,
lq_primary, lq_secondary, lq_tertiary, patents_rate,
exchange_rate, inpc, border_distance, trump_election)
# Visualizar primeras filas
head(nearshoring_clean)## # A tibble: 6 × 25
## state year region_name region_num real_mxn_new_fdi real_mxn_reinv_profits
## <chr> <dbl> <fct> <dbl> <dbl> <dbl>
## 1 Aguascal… 2006 Bajio 2 658. 781.
## 2 Aguascal… 2007 Bajio 2 5351. 711.
## 3 Aguascal… 2008 Bajio 2 762. 6391.
## 4 Aguascal… 2009 Bajio 2 8431. 439.
## 5 Aguascal… 2010 Bajio 2 1108. 1693.
## 6 Aguascal… 2011 Bajio 2 64.8 4164.
## # ℹ 19 more variables: real_mxn_intercom_acc <dbl>, real_mxn_total_fdi <dbl>,
## # real_wage <dbl>, real_mxn_exports_miles_dlls <dbl>, crime_rate <dbl>,
## # unemployment <dbl>, employment <dbl>, business_activity <dbl>,
## # pop_density <dbl>, good_governance <dbl>, ratio_public_investment <dbl>,
## # lq_primary <dbl>, lq_secondary <dbl>, lq_tertiary <dbl>,
## # patents_rate <dbl>, exchange_rate <dbl>, inpc <dbl>, border_distance <dbl>,
## # trump_election <dbl>
## state year region_name region_num
## Length:544 Min. :2006 Bajio : 85 Min. :1.000
## Class :character 1st Qu.:2010 Centro :102 1st Qu.:2.000
## Mode :character Median :2014 Norte :102 Median :3.000
## Mean :2014 Occidente:119 Mean :3.188
## 3rd Qu.:2018 Sur :136 3rd Qu.:4.250
## Max. :2022 Max. :5.000
##
## real_mxn_new_fdi real_mxn_reinv_profits real_mxn_intercom_acc
## Min. :-15305 Min. : -963.7 Min. :-14549.8
## 1st Qu.: 1126 1st Qu.: 1262.8 1st Qu.: 97.8
## Median : 3483 Median : 2977.5 Median : 1385.5
## Mean : 6714 Mean : 6716.1 Mean : 3619.3
## 3rd Qu.: 7706 3rd Qu.: 7459.0 3rd Qu.: 5630.8
## Max. :114416 Max. :81075.6 Max. : 37966.8
##
## real_mxn_total_fdi real_wage real_mxn_exports_miles_dlls
## Min. : -7411 Min. :239.3 Min. :2.737e+05
## 1st Qu.: 3579 1st Qu.:282.5 1st Qu.:1.878e+07
## Median : 8932 Median :306.2 Median :7.222e+07
## Mean : 17049 Mean :314.9 Mean :1.849e+08
## 3rd Qu.: 21094 3rd Qu.:335.4 3rd Qu.:2.876e+08
## Max. :170955 Max. :481.7 Max. :1.058e+09
## NA's :64
## crime_rate unemployment employment business_activity
## Min. : 1.710 Min. :0.01000 Min. :0.8900 Min. :-2.980
## 1st Qu.: 8.107 1st Qu.:0.03000 1st Qu.:0.9500 1st Qu.:-2.260
## Median : 13.880 Median :0.04000 Median :0.9700 Median :-2.070
## Mean : 22.163 Mean :0.04251 Mean :0.9639 Mean :-1.757
## 3rd Qu.: 26.314 3rd Qu.:0.05000 3rd Qu.:0.9754 3rd Qu.:-1.768
## Max. :181.510 Max. :0.10000 Max. :0.9928 Max. : 2.470
##
## pop_density good_governance ratio_public_investment lq_primary
## Min. : 7.74 Min. : 0.000 Min. :0.000000 Min. :0.0156
## 1st Qu.: 39.56 1st Qu.: 0.180 1st Qu.:0.000000 1st Qu.:0.4564
## Median : 61.77 Median : 0.500 Median :0.000000 Median :0.8945
## Mean : 299.46 Mean : 2.362 Mean :0.005736 Mean :1.0882
## 3rd Qu.: 150.46 3rd Qu.: 1.350 3rd Qu.:0.010000 3rd Qu.:1.5208
## Max. :6211.45 Max. :200.020 Max. :0.067644 Max. :3.3552
##
## lq_secondary lq_tertiary patents_rate exchange_rate
## Min. :0.5061 Min. :0.7165 Min. : 0.000 Min. :10.85
## 1st Qu.:0.7619 1st Qu.:0.8937 1st Qu.: 0.320 1st Qu.:12.87
## Median :0.9902 Median :0.9774 Median : 0.720 Median :14.51
## Mean :0.9908 Mean :0.9840 Mean : 1.453 Mean :15.91
## 3rd Qu.:1.2089 3rd Qu.:1.0453 3rd Qu.: 1.843 3rd Qu.:19.47
## Max. :1.6314 Max. :1.3565 Max. :13.770 Max. :20.52
##
## inpc border_distance trump_election
## Min. : 62.69 Min. : 8.83 Min. :0.0000
## 1st Qu.: 74.93 1st Qu.: 613.26 1st Qu.:0.0000
## Median : 87.19 Median : 751.64 Median :0.0000
## Mean : 89.08 Mean : 704.92 Mean :0.2353
## 3rd Qu.:103.02 3rd Qu.: 875.76 3rd Qu.:0.0000
## Max. :126.48 Max. :1252.66 Max. :1.0000
##
nearshoring_numeric <- nearshoring_clean[, !names(nearshoring_clean) %in% c("real_wage", "total_fdi","intercom_acc","reinv_profits","new_fdi","total_fdi", "mxn_total_fdi","mxn_intercom_acc","mxn_reinv_profit","mxn_new_fdi")]
nearshoring_numeric <- nearshoring_numeric[, sapply(nearshoring_numeric, is.numeric)]
cor_matrix <- cor(nearshoring_numeric, use = "complete.obs")
cor_long <- melt(cor_matrix)
ggplot(cor_long, aes(Var1, Var2, fill = value)) +
geom_tile() +
scale_fill_gradient2(low = "blue", high = "red", mid = "white",
midpoint = 0, limit = c(-1,1), space = "Lab",
name="Correlación") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1)) +
labs(title = "Correlation Matrix of Numeric Variables", x = "", y ="")| media | mínimo | Q1 | mediana | Q3 | máximo | std | |
|---|---|---|---|---|---|---|---|
| pop_density | 299.46 | 7.74 | 39.56 | 61.77 | 150.45 | 6,211.45 | 1,047.59 |
| employment | 0.96 | 0.89 | 0.95 | 0.97 | 0.98 | 0.99 | 0.02 |
| crime_rate | 22.16 | 1.71 | 8.11 | 13.88 | 26.31 | 181.51 | 22.53 |
| business_activity | -1.76 | -2.98 | -2.26 | -2.07 | -1.77 | 2.47 | 0.95 |
| border_distance | 704.92 | 8.83 | 613.26 | 751.64 | 875.76 | 1,252.66 | 273.98 |
| lq_primary | 1.09 | 0.02 | 0.46 | 0.89 | 1.52 | 3.36 | 0.72 |
| lq_secondary | 0.99 | 0.51 | 0.76 | 0.99 | 1.21 | 1.63 | 0.26 |
| lq_tertiary | 0.98 | 0.72 | 0.89 | 0.98 | 1.05 | 1.36 | 0.13 |
La densidad de población a lo largo de los estados y los años es muy dispersa, cada entidad tiene características propias y distintas, lo que puede ser importante al momento de realizar una inversión.
La tasa de empleo es encuentra muy concentrada en valores entre 0.95 - 0.98, al tener poca dispersión siendo medida de manera general y nos puede llegar a indicar que todos los estados se comportan de manera similar a lo largo del tiempo.
La distancia al borde fronterizo cuenta con cierto sesgo a la derecha, comportamiento natural considerando que cada vez que nos alejemos de linea fronteriza habrá menos cantidad de entidades, sin embargo aquellos estados con más cercanía pudieran verse beneficiados.
| region_name | media | mínimo | Q1 | mediana | Q3 | máximo | std |
|---|---|---|---|---|---|---|---|
| Bajio | 6,354.53 | -5,648.14 | 1,750.30 | 5,617.62 | 9,178.96 | 28,064.26 | 5,986.31 |
| Centro | 12,384.38 | -15,304.55 | 933.89 | 3,453.24 | 15,417.95 | 114,415.82 | 20,982.14 |
| Norte | 8,574.35 | -7,785.59 | 3,638.47 | 6,700.87 | 10,453.62 | 69,642.78 | 9,422.06 |
| Occidente | 4,597.61 | -902.41 | 1,042.11 | 2,340.94 | 6,171.21 | 27,153.52 | 5,719.34 |
| Sur | 3,140.72 | -1,414.26 | 771.33 | 1,553.34 | 4,464.20 | 22,584.32 | 3,904.24 |
| region_name | state | media | mínimo | Q1 | mediana | Q3 | máximo | std |
|---|---|---|---|---|---|---|---|---|
| Bajio | Aguascalientes | 3,053.08 | 64.79 | 690.61 | 1,270.15 | 5,351.44 | 9,855.11 | 3,219.20 |
| Bajio | Guanajuato | 10,477.01 | 2,636.78 | 7,213.73 | 9,270.15 | 12,268.91 | 27,082.14 | 5,930.87 |
| Bajio | Queretaro | 5,990.70 | -5,648.14 | 4,354.16 | 6,504.73 | 7,169.48 | 11,970.58 | 4,047.50 |
| Bajio | San Luis Potosi | 6,839.50 | 519.09 | 2,688.05 | 5,617.62 | 9,265.20 | 21,777.33 | 5,737.25 |
| Bajio | Zacatecas | 5,412.38 | 250.09 | 594.33 | 2,353.44 | 6,205.66 | 28,064.26 | 7,894.95 |
| Centro | Ciudad de Mexico | 47,373.13 | -15,304.55 | 31,485.77 | 45,740.70 | 58,174.58 | 114,415.82 | 29,460.77 |
| Centro | Hidalgo | 1,329.82 | -4,400.93 | 431.00 | 1,049.46 | 2,450.85 | 4,816.77 | 2,021.54 |
| Centro | Mexico | 18,301.99 | 4,933.67 | 13,431.43 | 15,818.50 | 19,881.22 | 46,726.05 | 10,162.87 |
| Centro | Morelos | 1,338.80 | -1,129.81 | 243.86 | 729.52 | 1,542.86 | 5,054.33 | 1,700.71 |
| Centro | Puebla | 4,981.16 | 1,023.31 | 3,122.38 | 4,667.11 | 6,830.58 | 9,804.75 | 2,489.69 |
| Centro | Tlaxcala | 981.40 | -557.50 | 176.27 | 1,144.27 | 1,290.09 | 3,495.61 | 943.58 |
| Norte | Baja California | 7,816.23 | 387.60 | 3,828.79 | 7,399.52 | 9,907.95 | 20,410.32 | 4,972.75 |
| Norte | Chihuahua | 6,441.39 | -1,018.00 | 3,300.72 | 7,154.47 | 8,639.51 | 16,165.41 | 4,680.24 |
| Norte | Coahuila | 8,797.16 | 1,829.79 | 4,327.70 | 6,518.93 | 10,362.99 | 19,650.29 | 5,914.17 |
| Norte | Nuevo Leon | 18,316.85 | -215.80 | 10,467.48 | 14,141.52 | 20,409.05 | 69,642.78 | 17,432.54 |
| Norte | Sonora | 3,580.07 | -7,785.59 | 830.09 | 3,680.66 | 5,977.20 | 11,010.63 | 4,408.69 |
| Norte | Tamaulipas | 6,494.40 | -4,003.19 | 3,991.99 | 5,676.17 | 8,936.91 | 14,071.36 | 4,243.69 |
Las regiones que presentan mayor atracción a nuevas inversiones extranjeras son Norte, Centro y Bajío.
La región Centro aunque tiene la media de inversiones más alta no se puede considerar la región que recauda mayor inversión, esto debido al sesgo que se encuentra dentro de la región teniendo una dispersión muy alta a comparación de las demás y considerando que el valor máximo es 10 veces el valor del percentil 75.
La región Norte cuenta con algo de sesgo similar a la región centro solo que en menor medida, al igual esta región cuenta con una mediana superior a los demás teniendo generalmente un tamaño de inversión más alto.
Dentro de la región Centro se puede observar que principalmente es la Ciudad de México, la entidad donde se centraliza la inversión, teniendo también una dispersión muy alta por si misma.
En la región Norte se encuentra como principal protagonista la entidad de Nuevo León, siendo el segundo estado con mayor inversiones nuevas al nivel federal. Nuevo León cuenta con una menor dispersión que CDMX indicando que es más usual ver inversiones similares dentro del estado.
Dentro de las regiones, principalmente Centro y Norte, no se puede apreciar homogeneidad en la cantidad ($) de inversiones que encuentran en sus entidades federativas. La región del Bajío cuenta con métricas más uniformes a lo largo de los estados, lo cual podría favorecer un crecimiento constante a lo largo de la región.
| region_name | media | mínimo | Q1 | mediana | Q3 | máximo | std |
|---|---|---|---|---|---|---|---|
| Bajio | -1.85 | -2.29 | -2.06 | -1.92 | -1.82 | 0.01 | 0.49 |
| Centro | -1.99 | -2.33 | -2.19 | -2.09 | -2.03 | 0.02 | 0.51 |
| Norte | -0.54 | -1.61 | -1.29 | -1.04 | -0.80 | 2.47 | 1.29 |
| Occidente | -2.07 | -2.57 | -2.29 | -2.18 | -2.08 | 0.01 | 0.54 |
| Sur | -2.17 | -2.98 | -2.41 | -2.29 | -2.07 | 0.01 | 0.60 |
| region_name | state | media | mínimo | Q1 | mediana | Q3 | máximo | std |
|---|---|---|---|---|---|---|---|---|
| Bajio | Aguascalientes | -1.93 | -2.29 | -2.22 | -1.98 | -1.88 | -0.00 | 0.53 |
| Bajio | Guanajuato | -1.92 | -2.25 | -2.17 | -1.98 | -1.89 | 0.01 | 0.52 |
| Bajio | Queretaro | -1.90 | -2.25 | -2.10 | -1.97 | -1.92 | 0.01 | 0.51 |
| Bajio | San Luis Potosi | -1.73 | -2.05 | -1.97 | -1.82 | -1.68 | 0.01 | 0.47 |
| Bajio | Zacatecas | -1.76 | -2.10 | -1.91 | -1.81 | -1.78 | -0.00 | 0.47 |
| Centro | Ciudad de Mexico | -1.96 | -2.19 | -2.14 | -2.08 | -2.01 | 0.01 | 0.51 |
| Centro | Hidalgo | -1.86 | -2.08 | -2.02 | -1.97 | -1.92 | 0.02 | 0.49 |
| Centro | Mexico | -2.05 | -2.33 | -2.26 | -2.17 | -2.06 | 0.00 | 0.54 |
| Centro | Morelos | -2.03 | -2.28 | -2.21 | -2.13 | -2.09 | 0.00 | 0.53 |
| Centro | Puebla | -2.04 | -2.32 | -2.25 | -2.14 | -2.09 | 0.01 | 0.54 |
| Centro | Tlaxcala | -1.99 | -2.25 | -2.16 | -2.11 | -2.02 | 0.00 | 0.52 |
| Norte | Baja California | 2.20 | 0.41 | 2.21 | 2.31 | 2.42 | 2.47 | 0.47 |
| Norte | Chihuahua | -1.30 | -1.55 | -1.47 | -1.36 | -1.26 | 0.01 | 0.36 |
| Norte | Coahuila | -1.33 | -1.61 | -1.45 | -1.38 | -1.33 | 0.02 | 0.36 |
| Norte | Nuevo Leon | -0.84 | -1.05 | -0.98 | -0.88 | -0.79 | 0.02 | 0.24 |
| Norte | Sonora | -0.97 | -1.22 | -1.16 | -0.99 | -0.92 | 0.01 | 0.28 |
| Norte | Tamaulipas | -1.00 | -1.14 | -1.11 | -1.07 | -1.02 | 0.01 | 0.26 |
Tanto la mediana como la media tienden a ubicarse en valores negativos. Esto indica que, en la mayoría de los estados, la Actividad de negocio está por debajo de un punto de referencia, representando un entorno empresarial menos dinámico.
Existe una dispersión considerable a nivel nacional, esto se debe a la dispersión que existe principalmente en la región Norte donde se encuentra y por diferencia el estado que ha mantenido una Actividad de negocio alta a lo largo de los años, Baja California.
# Filtrar solo las columnas numéricas y eliminar 'year' y 'trump_election'
nearshoring_numeric <- nearshoring_clean %>%
select(where(is.numeric)) %>%
select(-year, -trump_election, -region_num)
# Convertir a formato largo
nearshoring_numeric_long <- nearshoring_numeric %>%
pivot_longer(cols = everything(), names_to = "Variable", values_to = "Valor")
# Obtener lista de variables en grupos de 4
variables <- unique(nearshoring_numeric_long$Variable)
num_groups <- ceiling(length(variables) / 4) # Número de grupos de 4
# Generar histogramas en grupos de 4
for (i in seq(1, length(variables), by = 4)) {
vars_subset <- variables[i:min(i+3, length(variables))] # Seleccionar grupo de 4 variables
plot <- ggplot(nearshoring_numeric_long %>% filter(Variable %in% vars_subset), aes(x = Valor)) +
geom_histogram(bins = 30, fill = "steelblue", color = "black", alpha = 0.7) +
facet_wrap(~Variable, scales = "free", ncol = 2) + # Agrupar en 2 columnas
theme_minimal() +
labs(title = paste("Distribución de Variables"),
x = "Valor",
y = "Frecuencia") +
theme(strip.text = element_text(face = "bold", size = 12),
plot.title = element_text(hjust = 0.5, face = "bold", size = 14))
print(plot) # Mostrar gráfico
}La mayoría de las variables presentan sesgo a la derecha, indicando que hay pocos valores extremadamente altos y muchos valores bajos, lo que sugiere la necesidad de transformaciones como exponente o logaritmo para mejorar la linealidad en los modelos.
Los coeficientes de localización sectorial (LQ primary, LQ secondary, LQ tertiary) tienen distribuciones más cercanas a normales, aunque LQ secondary presenta bimodalidad, lo que podría reflejar la presencia de dos tipos de regiones con dinámicas industriales diferentes.
Algunas variables, como patents_rate, muestran distribuciones con múltiples picos o poca variabilidad, lo que puede afectar su capacidad predictiva en modelos de regresión si no se maneja adecuadamente.
# Quitamos exports porque sus datos opacan los de más gráficos
nearshoring2 <- nearshoring_clean %>%
select(-real_mxn_exports_miles_dlls) %>%
select(where(is.numeric)) %>%
select(matches("real_mxn"))
# Transformar los datos a formato largo para ggplot
nearshoring_largo <- nearshoring2 %>%
pivot_longer(cols = everything(), names_to = "Variable", values_to = "Valor")
# Crear boxplots sin outliers con diferentes colores por variable
ggplot(nearshoring_largo, aes(x = Variable, y = Valor, fill = Variable)) +
geom_boxplot(outliers = FALSE,color = "black") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Boxplots de variables numéricas en nearshoring (sin outliers)",
x = "Variable",
y = "Valor") +
scale_fill_brewer(palette = "Set3")La variable real_mxn_intercom_acc presenta una gran cantidad de valores cercanos a cero, lo que indica que la mayoría de las entidades tienen bajos niveles de esta métrica, con algunas excepciones que presentan valores significativamente más altos.
real_mxn_new_fdi muestra un comportamiento similar con una mediana baja y un rango intercuartil pequeño, lo que sugiere que la mayoría de las inversiones nuevas son relativamente pequeñas en comparación con algunos valores atípicos que pueden corresponder a entidades que han recibido inversiones extranjeras significativamente mayores.
La variable real_mxn_reinv_profits tiene una dispersión ligeramente menor, lo que indica que las ganancias reinvertidas muestran una menor variabilidad entre las entidades en comparación con las inversiones nuevas.
real_mxn_total_fdi tiene la mayor dispersión entre todas las variables y muestra una gran cantidad de valores atípicos, lo que sugiere que algunas entidades reciben montos muy altos de inversión extranjera directa en comparación con el resto. Esto podría indicar una desigual distribución de la inversión en el país.
# Crear boxplots con colores por región
ggplot(nearshoring_clean, aes(x = real_wage, y = real_mxn_new_fdi, fill = region_name)) +
geom_boxplot(color = "black") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Boxplots de salario en nearshoring por región",
x = "Variable",
y = "Valor",
fill = "Región") +
ylim(200, 550) +
scale_fill_brewer(palette = "Set3") # Paleta de colores para diferenciar regionesSe observa que las regiones tienen distribuciones diferenciadas en las variables analizadas, lo que sugiere que el impacto del nearshoring puede variar significativamente según la zona geográfica.
La región Norte presenta valores consistentemente más altos en comparación con otras regiones, lo que indica que esta zona podría estar capturando una mayor proporción de la actividad económica relacionada con el nearshoring.
La región Centro muestra una mayor dispersión en los valores, lo que sugiere que hay estados con niveles muy variados de inversión y actividad, probablemente debido a la presencia de estados con dinámicas económicas distintas dentro de la misma región.
La región Bajío también presenta valores elevados, aunque con una dispersión más controlada, lo que podría indicar que esta zona tiene una distribución más homogénea de los beneficios del nearshoring.
La región Sur tiende a mostrar valores más bajos en comparación con las demás regiones, lo que sugiere que esta zona podría estar menos integrada en las estrategias de nearshoring o enfrentando más barreras para atraer inversiones.
La región Occidente muestra una distribución intermedia, con valores que no alcanzan los niveles del Norte o Bajío, pero que tampoco presentan la baja dispersión del Sur.
Estos patrones pueden ser clave para diseñar estrategias de inversión diferenciadas según la región.
# Lista de variables a analizar
variables_real_mxn <- c("real_mxn_intercom_acc", "real_mxn_new_fdi", "real_mxn_reinv_profits", "real_mxn_total_fdi")
nearshoring3 <- nearshoring %>%
rename(
"cuentas intercompañia FDI" = real_mxn_intercom_acc,
"Nueva inversion extranjera directa" = real_mxn_new_fdi,
"reinversión de las ganancias" = real_mxn_reinv_profits,
"Inversion extranjera directa total" = real_mxn_total_fdi
)
# Función para generar barplot de los 10 estados con valores más altos
crear_barplot <- function(var_name) {
# Agrupar por estado y calcular el promedio de la variable
datos_top <- nearshoring3 %>%
group_by(state) %>%
summarise(Valor_Promedio = mean(.data[[var_name]], na.rm = TRUE)) %>%
top_n(10, Valor_Promedio) %>%
arrange(desc(Valor_Promedio)) %>%
mutate(state_id = as.factor(state)) # Convertir en factor para evitar error
# Crear el barplot
ggplot(datos_top, aes(x = reorder(state, Valor_Promedio), y = Valor_Promedio, fill = state_id)) +
geom_bar(stat = "identity", color = "black", width = 0.6) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1, size = 12, face = "bold", color = "black"),
axis.title = element_text(size = 14, face = "bold"),
plot.title = element_text(size = 18, face = "bold", hjust = 0.5),
legend.position = "none"
) +
labs(title = paste("Top 10 Estados -", var_name),
x = "Estado",
y = "Valor Promedio") +
coord_flip()
}
# Generar los 4 gráficos
barplot_intercom_acc <- crear_barplot("cuentas intercompañia FDI")
barplot_new_fdi <- crear_barplot("Nueva inversion extranjera directa")
barplot_reinv_profits <- crear_barplot("reinversión de las ganancias")
barplot_total_fdi <- crear_barplot("Inversion extranjera directa total")
# Mostrar los gráficos individualmente
print(barplot_intercom_acc)Chihuahua, Ciudad de México y Baja California lideran en cuentas intercompañía de FDI, lo que sugiere que estas entidades tienen un fuerte ecosistema empresarial con múltiples filiales y conexiones globales.
En términos de nueva inversión extranjera directa, Ciudad de México es el principal receptor, con un monto significativamente superior al de otros estados, lo que reafirma su papel como el centro económico y financiero más importante del país.
Nuevo León, Estado de México y Jalisco también reciben altos niveles de nueva inversión extranjera, consolidándose como hubs industriales clave en el país.
La reinversión de ganancias sigue una tendencia similar, con Ciudad de México nuevamente a la cabeza, lo que sugiere que las empresas ya establecidas en la capital están reinvirtiendo más capital en comparación con otros estados.
Nuevo León, Jalisco y Guanajuato también presentan altos niveles de reinversión, lo que refleja la confianza de las empresas en estas entidades como destinos estratégicos para mantener operaciones.
En la Inversión Extranjera Directa Total, Ciudad de México domina nuevamente el ranking, superando por un amplio margen a los demás estados, seguida por Nuevo León, Estado de México y Jalisco.
Chihuahua y Baja California se destacan dentro de la región norte, lo que puede estar relacionado con su proximidad a la frontera con EE.UU. y su participación en la industria manufacturera.
Querétaro, Guanajuato y Coahuila aparecen recurrentemente en las listas, consolidándose como estados clave en el nearshoring y en la atracción de inversiones en manufactura y tecnología.
Estos patrones reflejan cómo la inversión extranjera se concentra en ciertas entidades con ventajas estratégicas, como acceso a mercados globales, infraestructura industrial y estabilidad económica.
# Calcular porcentaje de datos por región
nearshoring_summary <- nearshoring_clean %>%
group_by(region_name) %>%
summarise(count = n()) %>%
mutate(percentage = (count / sum(count)) * 100)
# Crear el boxplot con etiquetas de porcentaje
ggplot(nearshoring_clean, aes(x = region_name, y = real_mxn_new_fdi, fill = region_name)) +
geom_boxplot(color = "black") + # Color de borde negro
theme_minimal() +
labs(title = "Distribución de la Nueva Inversión Extranjera por Región",
x = "Región", y = "Nueva Inversión Extranjera (MXN reales)") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
scale_fill_brewer(palette = "Set2") + # Paleta de colores más visualmente agradable
geom_text(data = nearshoring_summary, aes(x = region_name, y = max(nearshoring_clean$real_mxn_new_fdi, na.rm = TRUE) * 1.05, label = paste0(round(percentage, 1), "%")), size = 4, fontface = "bold", vjust = 0, color = "black") # Ajuste para que el texto esté arriba# Scatter plot entre real_mxn_new_fdi y pop_density con color de puntos según valor de lq_tertiary
ggplot(nearshoring_clean, aes(x = pop_density, y = sqrt(real_mxn_new_fdi), color = lq_tertiary)) +
geom_point(alpha = 0.7) +
scale_x_log10() + # Escala logarítmica para densidad poblacional
scale_color_gradient(low = "blue", high = "red") +
theme_minimal() +
labs(title = "Relación entre Raíz Cuadrada de Nueva Inversión Extranjera y Densidad Poblacional",
x = "Densidad Poblacional (Escala Log)",
y = "Raíz Cuadrada de Nueva Inversión Extranjera (MXN reales)",
color = "LQ Sector Terciario")Las ciudades más densamente pobladas concentran mayores inversiones, aunque la densidad por sí sola no parece ser un factor determinante.
El sector terciario juega un papel clave: los estados con altos montos y alta densidad parecen tener altos niveles de especialización en servicios (LQ > 1.2) en común.
Las áreas con baja densidad y menor desarrollo en servicios tienen dificultades para atraer inversión, sugiriendo que otros factores como infraestructura e incentivos fiscales pueden ser más relevantes.
ggplot(nearshoring_clean, aes(x = lq_primary, y = sqrt(real_mxn_new_fdi), color = employment)) +
geom_point(alpha = 0.7) +
scale_x_log10() + # Escala logarítmica en el eje X
scale_y_log10() + # Escala logarítmica en el eje Y
scale_color_gradient(low = "blue", high = "red") + # Mapea el color según employment
theme_minimal() +
labs(title = "Relación entre Nueva Inversión Extranjera y LQ del Sector Primario",
x = "LQ Sector Primario (Escala Log)",
y = "Raiz de Nueva Inversión Extranjera (MXN reales, Escala Log)",
color = "Employment Rate")Las regiones con alta especialización en el sector primario (LQ > 1) tienden a recibir menos inversión extranjera, lo que sugiere que este sector no es un motor clave para atraer capital externo.
Los valores más altos de inversión están concentrados en zonas con menor presencia del sector primario, indicando que las inversiones se dirigen a economías más diversificadas o con mayor industrialización.
El empleo general es alto en casi todas las observaciones, pero no parece estar relacionado con la inversión ni con la especialización en el sector primario, lo cual es congruente con el analisis de estadisticos descriptivo
# Scatter plot entre real_mxn_new_fdi y patents_rate
ggplot(nearshoring_clean, aes(x = patents_rate, y = sqrt(real_mxn_new_fdi))) +
geom_point(alpha = 0.7, color = "purple") +
#scale_y_log10() +
scale_x_log10() + # Escala logarítmica en el eje X (tasa de patentes)
theme_minimal() +
labs(title = "Relación entre Raíz Cuadrada de Nueva Inversión Extranjera y Tasa de Patentes",
x = "Tasa de Patentes (Escala Log)",
y = "Raíz Cuadrada de Nueva Inversión Extranjera (MXN reales)")No hay una relación lineal tan marcada entre la tasa de patentes y la inversión extranjera, lo que sugiere que la innovación no es el principal factor para atraer capital.
Las inversiones altas se observan tanto en regiones con pocas como con muchas patentes, aunque cabe mencionar que parecen ser más frecuentes en valores altos de tasa de patente.
Las regiones con mayor innovación pueden captar inversión, pero no de manera sistemática, lo que sugiere que la investigación y el desarrollo deben ir acompañados de otras condiciones para atraer capital extranjero.
# Obtener el mapa de México con divisiones por estado
mexico_map <- ne_states(country = "Mexico", returnclass = "sf")
# Normalizar nombres: convertir a minúsculas, eliminar acentos, y renombrar Distrito Federal a Ciudad de Mexico
mexico_map$name <- mexico_map$name %>%
tolower() %>%
stri_trans_general("Latin-ASCII") %>%
str_replace_all("distrito federal", "ciudad de mexico") # Cambiar Distrito Federal a Ciudad de Mexico
# Asegurar que year sea numérico y calcular inversión acumulativa
nearshoring_clean_df <- nearshoring_clean %>%
as.data.frame() %>%
mutate(state = tolower(state) %>%
stri_trans_general("Latin-ASCII") %>%
str_replace_all("ciudad de mexico", "ciudad de mexico"), # Asegurar consistencia en el nombre
year = as.numeric(as.character(year))) %>%
group_by(state, year) %>%
summarise(real_mxn_new_fdi = sum(real_mxn_new_fdi, na.rm = TRUE), .groups = "drop") %>%
arrange(state, year) %>%
group_by(state) %>%
mutate(cumulative_fdi = cumsum(real_mxn_new_fdi)) # Crear variable acumulativa
# Unir datos con el mapa
mexico_map <- mexico_map %>%
left_join(nearshoring_clean_df, by = c("name" = "state"))
# Crear el mapa con animación acumulativa
animated_map <- ggplot(mexico_map) +
geom_sf(aes(fill = cumulative_fdi), color = "black", size = 0.2) +
scale_fill_gradient(low = "lightyellow", high = "red", na.value = "gray80") +
theme_minimal() +
labs(title = "Evolución Acumulativa de la Inversión Extranjera en México ({closest_state})",
subtitle = "Valores en MXN reales (Acumulados por Año)",
fill = "New FDI Acumulado",
caption = "Fuente: Datos Nearshoring") +
transition_states(year, transition_length = 2, state_length = 1, wrap = FALSE) + # Mantiene valores acumulados
ease_aes('linear') # Transición lineal entre años
# Guardar el GIF con mayor calidad
# anim_save("mapa_inversion_mexico_acumulado.gif",
# animated_map,
# renderer = gifski_renderer(loop = TRUE, width = 1200, height = 800), # Aumentar resolución
# fps = 10, # Aumentar cuadros por segundo para mayor fluidez
# duration = 15) # Extender la duración para una transición más suave# Insertar el GIF en R Markdown (solo en HTML)
knitr::include_graphics("mapa_inversion_mexico_acumulado.gif")CDMX, Nuevo León y Jalisco lideraron el crecimiento de inversión extranjera desde el inicio, con patrones de crecimiento exponencial, lo que sugiere que han sido los principales hubs de inversión.
Estados del sur y occidente, como Nayarit, Sinaloa, Oaxaca y Guerrero, han mantenido valores bajos a lo largo del tiempo, reforzando la tendencia de menor atractivo en estas regiones.
Después de 2020, algunos estados como Zacatecas y San Luis Potosí muestran un crecimiento acelerado, principalmente aquellos cercanos a la frontera con EE.UU. o en el centro-norte, lo que podría estar relacionado con cambios en políticas económicas o estrategias de relocalización que benefician la tendencia de nearshoring en los últimos años.
# Asegurar que year sea numérico y region_name sea factor
nearshoring_clean_df <- nearshoring_clean %>%
as.data.frame() %>%
mutate(year = as.numeric(as.character(year)),
region_name = as.factor(region_name))
# Graficar la inversión extranjera por región con barras apiladas
ggplot(nearshoring_clean_df, aes(x = factor(year), y = real_mxn_new_fdi, fill = region_name)) +
geom_bar(stat = "identity", position = "stack") + # Barras apiladas
theme_minimal() +
labs(title = "Distribución de la Inversión Extranjera Directa por Región",
x = "Año",
y = "Nueva Inversión Extranjera (MXN reales, Escala Log)",
fill = "Región") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))A diferencia del mapa acumulado, este gráfico muestra fluctuaciones anuales en la inversión, destacando que los picos de inversión no siempre reflejan un crecimiento sostenido.
La inversión cayó drásticamente en 2020, posiblemente debido a la pandemia, pero se recuperó rápidamente en 2021, aunque sin una tendencia clara de crecimiento a largo plazo.
No hay un incremento sistemático de nueva inversión con el tiempo, lo que sugiere que la llegada de capital extranjero responde más a eventos específicos y condiciones económicas globales que a un crecimiento estructural del país.
Estos hallazgos proporcionan una base sólida para ajustar modelos predictivos y entender los determinantes clave de la inversión extranjera en México.
Deloitte. (2020). Global Supply Chain and Network Transformation: A Strategy for the Future. Deloitte Insights.
McKinsey & Company. (2022). Nearshoring: A Solution for U.S. Supply Chain Vulnerabilities. McKinsey Insights.
The Economist. (2022). The Rise of Nearshoring in Mexico.
Moss, T. (2020). Measuring the Impact of Nearshoring on Mexico’s Economy. Economía Mexicana, 29(2), 15-31.
Wooldrige, J. M. (2010). Econometric Analysis of Cross Section and Panel Data. MIT Press.